﻿using System;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.Common;
using System.Text;
using CG67.EspaceRencontre.Outils;

namespace CG67.EspaceRencontre.AccesDonnees
{
    class DonneesRendezVous
    {
        //Chaîne de connection
        public static ConnectionStringSettings connection = ConfigurationManager.ConnectionStrings["EspaceRencontreConnectionString"];

        #region get
        /// <summary>
        /// Retourne les informations d'un rendez_vous
        /// </summary>
        /// <param name="Id">Identifiant du rendez-vous ciblé</param>
        /// <returns>DataSet</returns>
        public DataSet GetDataSet(string Id)
        {
            string sql = "SELECT r.ID,r.DEBUT, r.FIN, r.IDTRAVAILLEURSOCIAL, t.IDENFANT FROM RENDEZVOUS r LEFT JOIN RENDEZVOUS_ENFANT t ON r.ID = t.IDRENDEZVOUS; WHERE r.ID='" + Id + "'";
            return OutilsGestionRendezVous.BuildDataSet(sql, connection);
        }

        /// <summary>
        /// Recupère les informations de tous les enfants
        /// </summary>
        /// <returns>Dataset</returns>
        public static DataSet GetDataSet()
        {
            string sql = "SELECT r.ID,r.DEBUT, r.FIN, r.IDTRAVAILLEURSOCIAL, t.IDENFANT FROM RENDEZVOUS r LEFT JOIN RENDEZVOUS_ENFANT t ON r.ID = t.IDRENDEZVOUS;";
            return OutilsGestionRendezVous.BuildDataSet(sql, connection);
        }
        #endregion

        #region update
        /// <summary>
        /// Modifie les informations d'un rendez-vous
        /// </summary>
        /// <param name="Id">Identifiant du rendez-vous</param>
        /// <param name="Debut">Date début du rendez-vous</param>
        /// <param name="Fin">Date fin du rendez-vous</param>
        /// <param name="IdTravailleurSocial">Identifiant du travailleur social associé</param>
        public static void Update(string Id, string Debut, string Fin, string IdTravailleurSocial)
        {
            string query = "UPDATE [RENDEZVOUS] SET [DEBUT] = '" + Debut + "', [FIN] ='" + Fin + "', [IDTRAVAILLEURSOCIAL] = '" + IdTravailleurSocial + "' WHERE ID ='" + Id + "'";
            OutilsGestionRendezVous.ExecuteNonQuery(query, connection);
        }
        /// <summary>
        /// Ajoute un enfant au rendez-vous
        /// </summary>
        /// <param name="IdRendezVous">Identifiant du rendez-vous</param>
        /// <param name="IdEnfant">Identifiant de l'enfant</param>
        public static void AddEnfant(string IdRendezVous, string IdEnfant)
        {
            string query = "INSERT INTO [RENDEZVOUS_ENFANT] ([IDRENDEZVOUS], [IDENFANT]) VALUES ('" + IdRendezVous + "','" + IdEnfant +"'";
            OutilsGestionRendezVous.ExecuteNonQuery(query, connection);
        }
        /// <summary>
        /// Retire un enfant d'un rendez-vous
        /// </summary>
        /// <param name="IdRendezVous">Identifiant du rendez-vous</param>
        /// <param name="IdEnfant">Identifiant de l'enfant</param>
        public static void RemoveEnfant(string IdRendezVous, string IdEnfant)
        {
            string query = "DELETE FROM [RENDEZVOUS_ENFANT] WHERE [IDRENDEZVOUS] = " + IdRendezVous + " AND [IDENFANT] IN (" + IdEnfant + ")";
            OutilsGestionRendezVous.ExecuteNonQuery(query, connection);
        }
        #endregion

    }
}
